using System.Threading.Tasks;
using JGSY.CMS.LowCode.Platform.Application.DTOs;

namespace JGSY.CMS.LowCode.Platform.Application.Interfaces
{
    /// <summary>
    /// 日志服务接口。
    /// 提供操作日志、异常日志、访问日志等各类系统日志写入功能接口定义。
    /// </summary>
    public interface ILogService
    {
        /// <summary>
        /// 写入操作日志
        /// </summary>
        /// <param name="dto">审计日志数据传输对象</param>
        /// <returns>写入任务</returns>
        Task WriteOperationAsync(AuditLogDto dto);
        
        /// <summary>
        /// 写入异常日志
        /// </summary>
        /// <param name="dto">审计日志数据传输对象</param>
        /// <returns>写入任务</returns>
        Task WriteExceptionAsync(AuditLogDto dto);
        
        /// <summary>
        /// 写入访问日志
        /// </summary>
        /// <param name="dto">审计日志数据传输对象</param>
        /// <returns>写入任务</returns>
        Task WriteAccessAsync(AuditLogDto dto);
    }
}